home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / etc / mule / m2ps.ps.z / m2ps.ps
Encoding:
Text File  |  1998-05-21  |  4.7 KB  |  185 lines

  1. %!PS
  2. %% PostScript Header for use by m2ps Ver.2.2
  3. %%   Copyright (C) 1992 Free Software Foundation, Inc.
  4. %%
  5. %% This file is part of Mule (MULtilingual Enhancement of GNU Emacs).
  6. %% 
  7. %% Mule is free software distributed in the form of patches to GNU Emacs.
  8. %% You can redistribute it and/or modify
  9. %% it under the terms of the GNU General Public License as published by
  10. %% the Free Software Foundation; either version 1, or (at your option)
  11. %% any later version.
  12. %% 
  13. %% Mule is distributed in the hope that it will be useful,
  14. %% but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16. %% GNU General Public License for more details.
  17. %% 
  18. %% You should have received a copy of the GNU General Public License
  19. %% along with GNU Emacs; see the file COPYING.  If not, write to
  20. %% the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  21. %% 
  22. %%  92.10.8  written by K.Handa <handa@etl.go.jp>
  23. %%  92.12.15 modified by K.Handa <handa@etl.go.jp>
  24. %%    Support composite character.
  25.  
  26. /Mydict 200 dict def    % define a working dictionary
  27. Mydict begin        % start using it.
  28.  
  29. %%%% Font Manipulation
  30.  
  31. /imagemaskmatrix [0 0 0 0 0 0] def
  32.  
  33. /BuildGlyphDefault {        % fontdict charname  BuildGlyphDefault  -
  34.     0 begin
  35.     1 index /CharData get exch get /ch exch def
  36.     /FontSize get /fs exch def
  37.     ch 0 get fs div 0 ch 1 4 getinterval { fs div } forall setcachedevice
  38.     ch 5 get ch 6 get 2 copy
  39.     0 gt exch 0 gt and {
  40.         true
  41.         imagemaskmatrix
  42.         dup 0 fs put dup 3 fs neg put
  43.         dup 4 ch 7 get put dup 5 ch 8 get put
  44.         ch 9 1 getinterval cvx
  45.         imagemask
  46.     } {
  47.     pop pop
  48.     } ifelse
  49.     end
  50. } bind def    
  51.  
  52. /BuildGlyphNoCache {        % fontdict charname  BuildGlyphNoCache  -
  53.     0 begin
  54.     1 index /CharData get exch get /ch exch def
  55.     /FontSize get /fs exch def
  56.     ch 0 get fs div 0 setcharwidth
  57.     ch 5 get ch 6 get 2 copy
  58.     0 gt exch 0 gt and {
  59.         true
  60.         imagemaskmatrix
  61.         dup 0 fs put dup 3 fs neg put
  62.         dup 4 ch 7 get put dup 5 ch 8 get put
  63.         ch 9 1 getinterval cvx
  64.         imagemask
  65.     } {
  66.     pop pop
  67.     } ifelse
  68.     end
  69. } bind def    
  70.  
  71. /BuildGlyphDefault load 0 6 dict put
  72. /BuildGlyphNoCache load 0 6 dict put
  73.  
  74. /work 4 string def
  75.  
  76. /nf {            % font fontname fsize bbox rel cache  nf  -  % NEWFONT
  77.     13 dict begin
  78.     /FontType 3 def
  79.     %ifelse
  80.         { /BuildGlyph { BuildGlyphDefault } def }
  81.         { /BuildGlyph { BuildGlyphNoCache } def }
  82.     ifelse
  83.     /Relative exch def
  84.     /FontBBox exch def
  85.     /FontSize exch def
  86.     /FontMatrix [1 0 0 1 0 0] def
  87.     /Encoding 256 array %def
  88.         dup 0 1 255 {
  89.             dup (XXX) cvs
  90.             (CXXX) work copy pop
  91.             work exch 1 exch putinterval
  92.             work cvn
  93.             put dup
  94.         } for pop
  95.     def
  96.     /CharData 256 dict def
  97.     /BuildChar {
  98.     1 index /Encoding get exch get
  99.     1 index /BuildGlyph get exec
  100.     } def
  101.     dup currentdict
  102.     end
  103.     definefont pop
  104.     findfont FontScale scalefont def
  105. } bind def
  106.  
  107. /g {                % charname chardata  g  -    % NEWGLYPH
  108.     currentfont begin
  109.     CharData begin def end
  110.     end
  111. } bind def
  112.  
  113. /f {                % font  f  -            % SETFONT
  114.     setfont
  115. } bind def
  116.     
  117. %%%% Page Control
  118. /bp {                % -  bp  -        % BEGIN OF PAGE
  119.     ShortMemory { save /SaveImage exch def } if
  120.     erasepage
  121.     /y TopMargin def
  122.     LeftMargin y moveto
  123. } bind def
  124.  
  125. /ep {                % -  ep  -        % END OF PAGE
  126.     copypage
  127.     ShortMemory { SaveImage restore } if
  128. } bind def
  129.  
  130. %%%% Miscellaneous Routines for reducing traffic
  131.  
  132. /r {                % x  r  -        % MOVE RIGHT
  133.     0 rmoveto
  134. } bind def
  135.  
  136. /n {                % -  n  -        % NEWLINE
  137.     /y y LinePitch sub def LeftMargin y moveto
  138. } bind def
  139.  
  140. /s {                % string  s  -        % SHOW STRING
  141.     show
  142. } bind def
  143.  
  144. /cs1 {                % string cs1 -        % SHOW COMP-CHAR
  145.     dup 0 get /ch exch def
  146.     currentfont /CharData get currentfont /Encoding get ch get get
  147.     dup 2 get /lly exch def
  148.     4 get /ury exch def
  149.     currentfont /Relative get /rel exch def
  150.     ury rel lt { /ury rel def } if
  151.     lly 0 gt { /lly 0 def } if
  152.     currentpoint /yy exch def /xx exch def
  153.     show
  154. } bind def
  155.  
  156. /cs2 {                % string cs2 -        % SHOW COMP-CHAR
  157.     gsave
  158.     dup 0 get /ch exch def
  159.     currentfont /FontSize get /fs exch def
  160.     currentfont /CharData get currentfont /Encoding get ch get get
  161.     dup 2 get /llyy exch def
  162.     4 get /uryy exch def
  163.     xx yy moveto
  164.     llyy rel ge {
  165.     0 ury llyy sub 1 add fs div FontScale mul rmoveto
  166.     /ury ury llyy sub uryy add 1 add def
  167.     } { uryy 0 le {
  168.     0 lly uryy sub 1 sub fs div FontScale mul rmoveto
  169.     /lly lly uryy sub llyy add 1 sub def
  170.     } {
  171.     uryy ury gt { /ury uryy def } if
  172.     llyy lly lt { /lly llyy def } if
  173.     } ifelse } ifelse
  174.     show
  175.     grestore
  176. } bind def
  177.  
  178. /cs3 {                % string cs3 -        % SHOW COMP-CHAR
  179.     gsave
  180.     xx yy moveto show
  181.     grestore
  182. } bind def
  183.  
  184. end        % end of Mydict
  185.